"""
-*- coding:utf-8 -*-
__project__ = 'le-bo16'
__file_name__ = 'rickey'
__author__ = 'RickeyTing'
__time__ = '2020/10/27 19:36'
__product_name = PyCharm
# code is far away from bugs with the god animal protecting
    I love animals. They taste delicious.
              ┏┓      ┏┓
            ┏┛┻━━━┛┻┓
            ┃        ┃
            ┃  ┳┛  ┗┳  ┃
            ┃      ┻      ┃
            ┗━┓      ┏━┛
                ┃      ┗━━━┓
                ┃  神兽保佑    ┣┓
                ┃　永无BUG！   ┏┛
                ┗┓┓┏━┳┓┏┛
                  ┃┫┫  ┃┫┫
                  ┗┻┛  ┗┻┛
"""

"""
1、下列程序结果是__初始化,类A,销毁____.
class A:

    def __init__(self):
        print("初始化")

    def __del__(self):
        print("销毁")

    def __str__(self):
        return "类A"
a = A()
print(a)

2. 下列程序执行结果__先输出动物在叫， 再输出汪汪汪____.
class Animal(object):

    def shut(self):
        print("动物在叫")
class Dog(Animal):

    def shut(self):
        super().shut()
        print("汪汪汪")
dog = Dog()
dog.shut()

"""


# 3. 创建猫类：
# 	类名：Cat
# 	属性：无
# 描述：创建一个Cat类，通过Cat类创建一个对象cat，执行print(cat)输出“喵？喵？喵？”.

class Cat(object):

    def cat(self):
        print("喵？喵？喵？")

cat =  Cat()
cat.cat()




"""
4.创建计算器类：
	类名：Calculator
	属性：number_1（数字一）、number_2（数字二） 
方法：
	def __init__(self,number_1,number_2): 
	
	# 类的初始化方法
# 	def add(self) # 返回数字一加数字二的值
# 	def sub(self) # 返回数字一减去数字二的值
# 	def div(self) # 返回数字一除以数字二的值
# 	def mul(self) # 返回数字一乘以数字二的值
#描述：创建计算器类，通过计算器类创建一个计算器对象，在创建对象时需要传入数字一和数字二，分别调用计算器的四种方法.
	
	
"""

class Calculator(object):

    def __init__(self, number_1, number_2):
        self.number_1 = number_1
        self.number_2 = number_2

    def info(self):
        print('计算机有：', self.number_1, self.number_2 +'\n')

    def add(self):
        ret = self.number_1 + self.number_2
        print('number_1和number_2的和为:%d' % ret)

    def sub(self):
        ret = self.number_1 - self.number_2
        print('number_1和number_2的差为:%d' % ret)

    def div(self):
        ret = self.number_1 % self.number_2
        print('number_1和number_2的商为:%d' % ret)

    def mul(self):
        ret = self.number_1 * self.number_2
        print('number_1和number_2的积为:%d' % ret + '\n')



info = Calculator('数字一', '数字二')
info.info()

printInfo = Calculator(11, 3)
printInfo.add()
printInfo.sub()
printInfo.div()
printInfo.mul()



#5.创建Cat和Dog类分别继承Animal类，分别重写shut和eat方法，创建Cat类对象cat和Dog类对象dog，分别调用cat和dog的shut和eat方法
class Animal:

    def shut(self): # 打印叫声
        print("叫声很欢")

    def eat(self): # 打印爱吃的食物
        print("爱吃食物")


class cat(Animal):
    def shut(self):
        print('猫咪叫声：喵喵喵\n')
    def eat(self):
        print("猫咪爱吃鱼!!!")

        super().shut()
        super(cat, self).eat()

class dog(Animal):
    def shut(self):
        print('狗狗叫声：汪汪汪')
    def eat(self):
        print("狗狗爱吃骨头!!!")

Cat = cat()
Cat.eat()
Cat.shut()

Dog = dog()
Dog.shut()
Dog.eat()





    # def eat(self):
    #     print("狗狗爱吃骨头：", self.eat)
    #     print("猫咪爱吃鱼：", self.eat)
    #
    # def shut(self):
    #     print("狗狗叫声：汪汪汪：", self.shut)
    #     print("猫咪叫声：喵喵喵：", self.shut)






"""
1、面向对象三大特性是__封装____、__继承____、__多态____.
2、单例模式创建保证实例只创建__1____次.
"""
if __name__ == "__main__":
    pass



